/*
 * txdnet.cn tonydon
 * by netbeans ide 7.2
 */
package cn.txdnet.txcms.dao;

import cn.txdnet.txcms.domain.Tagslib;
import cn.txdnet.txcms.dto.PageDTO;
import cn.txdnet.txcms.mapper.TagslibMapper;
import cn.txdnet.txcms.query.TagslibQuery;
import cn.txdnet.txweb.utils.CollectionUtil;
import java.util.List;
import java.util.Map;

/**
 *
 * @author tangxiaodong
 */
public class TagslibDAO extends MybatisBaseDAO {

    /**
     * 插入新标签
     *
     * @param tagname
     * @return
     */
    public int insertTag(Tagslib tag) {
        TagslibMapper mapper = this.getMapper(TagslibMapper.class);
        return mapper.insertTag(tag);
    }

    /**
     * 删除标签
     *
     * @param tagid
     * @return
     */
    public int deleteTag(int tagid) {
        TagslibMapper mapper = this.getMapper(TagslibMapper.class);
        return mapper.deleteTag(tagid);
    }

    /**
     * 更新分类
     *
     * @param m
     * @return
     */
    public int updateChannelAndCatalog(Map<String, Object> m) {
        TagslibMapper mapper = this.getMapper(TagslibMapper.class);
        return mapper.updateChannelAndCatalog(m);
    }

    /**
     * 更新发布状态
     * @param m
     * @return 
     */
    public int updatePubstate(Map<String, Object> m) {
        TagslibMapper mapper = this.getMapper(TagslibMapper.class);
        return mapper.updatePubstate(m);
    }
    
    /**
     * 更新tagname
     * @param m
     * @return 
     */
    public int updateTagname(Tagslib tag){
        TagslibMapper mapper = this.getMapper(TagslibMapper.class);
        return mapper.updateTagname(tag);
    }

    /**
     * 查询标签列表
     *
     * @param query
     * @return
     */
    public PageDTO queryByFactor(TagslibQuery query) {
        TagslibMapper mapper = this.getMapper(TagslibMapper.class);
        query.filter();
        List list = mapper.listByFactor(query);
        if (query.getRownum().intValue() == 0 && CollectionUtil.isNotEmpty(list)) {
            query.setRownum(mapper.countByFactor(query));
        }
        return new PageDTO(list, query.getRownum());
    }
    
    /**
     * 查询类目下的tag用于info绑定
     * @param cid
     * @return 
     */
    public List queryList(int cid){
        TagslibMapper mapper = this.getMapper(TagslibMapper.class);
        return mapper.queryList(cid);
    }
    
    /**
     * 通过 tagid查询 tag
     * @param tagid
     * @return 
     */
    public Tagslib queryByTagid(int tagid){
        TagslibMapper mapper = this.getMapper(TagslibMapper.class);
        return mapper.queryByTagid(tagid);
    }
}
